// 活动启动页
router.get('/event', async (req, res) => {
    try {
        const code = req.query.code;
        if (!code) {
            return res.status(400).render('warn', {
                title: '参数错误',
                message: '缺少活动代码',
                description: '请检查活动链接是否完整'
            });
        }

        // 首先尝试从活动表中获取记录
        const [activities] = await rds.query(
            'SELECT * FROM eb_lottery_activities WHERE activity_code = ?',
            [code]
        );

        let template;
        if (activities.length > 0) {
            const activity = activities[0];
            let config = {};

            try {
                config = JSON.parse(activity.landing_config || '{}');
            } catch (e) {
                logger.error('Error parsing landing_config:', e);
            }

            // 如果配置不为空，使用数据库中的配置
            if (Object.keys(config).length > 0) {
                // 补充必要的字段
                if (!config.title) {
                    config.title = activity.activity_name;
                }

                // 处理开始时间
                if (!config.startTime || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(config.startTime)) {
                    const startDate = new Date(activity.start_time * 1000);
                    config.startTime = startDate.toISOString().slice(0, 19); // 格式化为 YYYY-MM-DDTHH:mm:ss
                }

                // 处理结束时间
                if (!config.stopTime || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(config.stopTime)) {
                    const endDate = new Date(activity.end_time * 1000);
                    config.stopTime = endDate.toISOString().slice(0, 19); // 格式化为 YYYY-MM-DDTHH:mm:ss
                }

                // 处理按钮链接
                if (!config.bntLink) {
                    config.bntLink = `/apps/loyalty/scratch-card/${activity.activity_code}`;
                }

                template = config;
            }
        }

        // 如果没有找到活动记录或配置为空，则使用 tutils.getSubjectTemplate
        if (!template) {
            template = await tutils.getSubjectTemplate(code);
        }

        if (!template) {
            return res.status(404).render('warn', {
                title: '未找到活动',
                message: '活动不存在或已结束',
                description: `活动代码: ${code}`
            });
        }

        res.render('loyalty/event', { template });
    } catch (error) {
        logger.error('Error in event route:', error);
        res.status(500).render('warn', {
            title: '系统错误',
            message: '获取活动信息失败',
            description: error.message
        });
    }
}); 